﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Gustozzi.DAL;
using System.Text;

namespace WebGustozzi.ModuloVentas
{
    public partial class wfActualizarPrecioProducto : System.Web.UI.Page
    {
        VentasDataEntities contexto = new VentasDataEntities();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Inicializar();
                hdf_InicioGrilla.Value = "S";
            }
            else
            {
                hdf_InicioGrilla.Value = "N";
            }
        }

        public void Inicializar()
        {

            var prod = from p in contexto.TiposCliente
                       select new 
                       {
                           Codigo=p.codigoTipoCliente,
                           Nombre=p.descripcion
                       };
            ddlTipoCliente.DataSource = prod;
            ddlTipoCliente.DataTextField = "Nombre";
            ddlTipoCliente.DataValueField = "Codigo";
            ddlTipoCliente.DataBind();

        }

        protected void imbNuevo0_Click(object sender, ImageClickEventArgs e)
        {
            Response.Redirect("../wfPrincipal.aspx");
        }

       

        protected void imbFiltrar_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                BuscarProducto();
            }
            catch (Exception)
            {
                
                throw;
            }
        }
        public void BuscarProducto()
        {
            string nombreProducto = null;
            int codigoTipo = 0;
            decimal precio = 0;

            if (contexto == null)
            {
                contexto = new VentasDataEntities();
            }

            if (!txtCodigoProducto.Text.Trim().Equals(String.Empty))
            {
                nombreProducto = txtNombreProducto.Text.Trim();
            }

            if (ddlTipoCliente.SelectedIndex > 0)
            {
                codigoTipo = Convert.ToInt32(ddlTipoCliente.SelectedValue);
            }

            if (!txtPrecio.Text.Trim().Equals(string.Empty))
            {
                precio = Convert.ToDecimal(txtPrecio.Text);
            }


            var p = contexto.BuscarPrecioProducto(nombreProducto, codigoTipo, precio);
            grvListaProductos.DataSource = p;
            grvListaProductos.DataBind();
        }

        protected void grvListaProductos_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            try
            {
                if (hdf_InicioGrilla.Value == "N")
                {
                    if (e.Row.RowType == DataControlRowType.DataRow)
                    {
                        e.Row.Attributes["OnClick"] = Page.ClientScript.GetPostBackClientHyperlink(this.grvListaProductos, "Select$" + e.Row.RowIndex.ToString());
                        BuscarPrecioProducto_Result oItem = (BuscarPrecioProducto_Result)e.Row.DataItem;

                        StringBuilder strConstructor = new StringBuilder();

                        string sNavigateURL = String.Format("EditarPrecioProducto({0},{1})", oItem.codigoProducto,oItem.codigoTipoCliente);

                        strConstructor.Append(sNavigateURL);


                        ((LinkButton)(e.Row.Cells[6].Controls[0])).Attributes.Add("onclick", strConstructor.ToString());
                    }
                }
            }
            catch (Exception)
            {

                throw;
            }
        }

        protected void txtCodigoProducto_TextChanged1(object sender, EventArgs e)
        {
            try
            {
                if(contexto==null)
                {
                    contexto = new VentasDataEntities();
                }
                int idProducto = Convert.ToInt32(txtCodigoProducto.Text);

                var producto = from o in contexto.Productos
                               where o.codigoProducto==idProducto
                               select o;

                if (producto.Count() > 0) 
                {
                    txtNombreProducto.Text = producto.First().descripcion;
                }

            }
            catch (Exception)
            {
                
                throw;
            }
        }
      
    }

}